-- *****************************************************************
-- CISCO-ISDN-MIB.my:  Cisco ISDN MIB file
--
-- January 1995, Fred Baker, Bibek A. Das
--
-- Copyright (c) 1995-1996, 1999, 2000, 2001, 2002 by cisco Systems, Inc.
-- All rights reserved.
--
-- *****************************************************************

CISCO-ISDN-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        NOTIFICATION-TYPE,
        Counter32,
        OBJECT-TYPE,
        Integer32
                FROM SNMPv2-SMI
        DisplayString,
        TimeStamp,
        RowStatus
                FROM SNMPv2-TC
        MODULE-COMPLIANCE,
        OBJECT-GROUP
                FROM SNMPv2-CONF
        ciscoMgmt
                FROM CISCO-SMI
        ifIndex
                FROM IF-MIB
        isdnLapdOperStatus,
        isdnSignalingIndex,
        isdnSignalingIfIndex
                FROM ISDN-MIB;
     

ciscoIsdnMib MODULE-IDENTITY
        LAST-UPDATED    "200102090000Z"
        ORGANIZATION    "Cisco Systems, Inc."
        CONTACT-INFO
                "       Cisco Systems
                        Customer Service

                Postal: 170 W Tasman Drive
                        San Jose, CA  95134
                        USA

                   Tel: +1 800 553-NETS

                E-mail: cs-isdn@cisco.com"
        DESCRIPTION
                "The MIB module to describe the status of the ISDN 
                 Interfaces on the routers."
        REVISION        "200102090000Z"
        DESCRIPTION
                "For a call connects, demandNbrLastDuration, 
                 demandNbrClearReason, and demandNbrClearCode 
                 objects are not included in the trap."
        REVISION        "200003270000Z"
        DESCRIPTION
               "Added demandNbrCNANotification when call rejected with
                channel not available cause code"

        REVISION        "200002230000Z"
        DESCRIPTION
               "Removed an instantiated clause in description for 
                ciscoCallHistoryCallingNumber."
        REVISION        "9905070000Z"
        DESCRIPTION
               "Added a new trap for PRI layer 2 state changes."
        REVISION        "9602210000Z"
        DESCRIPTION
               "Add a new object demandNbrCallOrigin."
        REVISION        "9508150000Z"
        DESCRIPTION
                "Specify a correct (non-negative) range for an index
                object."
        REVISION        "9501300000Z"
        DESCRIPTION
                "Initial version of Cisco ISDN MIB."
        ::= { ciscoMgmt 26 }

-- The ISDN hardware interface (BRI or PRI) will be represented
-- by the D channel. This will have an ifType value of basicISDN(20)
-- or primaryISDN(21), refer to RFC 1213. Each  B channel will
-- also be represented in an an entry in the ifTable. The B
-- channels will have an ifType value of other(1).
-- This model will be used while defining objects and tables
-- for management.
-- The ISDN MIB will allow sub-layers. For example, the data transfer
-- over a B channel may take place with PPP encapsulation. While the
-- ISDN MIB will describe the B channel, a media specific MIB for
-- PPP can be used on a layered basis. This will be as per RFC 1573.
-- The isdn call information will be stored in the neighbor table
        
-- Isdn Mib objects definitions

ciscoIsdnMibObjects OBJECT IDENTIFIER ::= { ciscoIsdnMib 1 }

isdnNeighbor OBJECT IDENTIFIER ::= { ciscoIsdnMibObjects 1 }

 
demandNbrTable  OBJECT-TYPE
        SYNTAX  SEQUENCE OF DemandNbrEntry
        MAX-ACCESS   not-accessible
        STATUS  current
        DESCRIPTION
        "The list of neighbors from which the router will accept calls or
        to which it will place them."
       ::= { isdnNeighbor 1 }

demandNbrEntry  OBJECT-TYPE
        SYNTAX  DemandNbrEntry
        MAX-ACCESS      not-accessible
        STATUS  current
        DESCRIPTION
        "A single Neighbor. This entry is effectively permanent, and contains
        information describing the neighbor, his permissions, his last call
        attempt, and his cumulative effects."
        INDEX   {demandNbrPhysIf, demandNbrId }
      ::= { demandNbrTable 1 }

DemandNbrEntry ::=
 SEQUENCE {
        demandNbrPhysIf         Integer32 (1..2147483647), -- ifIndex value 
                                                           -- of  the D channel
        demandNbrId             Integer32 (0..2147483647), -- sequence number
        demandNbrLogIf          Integer32 (1..2147483647), -- ifIndex value of 
                                                           -- virtual interface
        demandNbrName           DisplayString,  -- name of the neighbor
        demandNbrAddress        DisplayString,  -- Call Address 
        demandNbrPermission     INTEGER,  -- applicable permissions
        demandNbrMaxDuration    Integer32 (1..2147483647), -- Max call duration
                                                           -- in seconds
        demandNbrLastDuration   Integer32 (1..2147483647), -- Duration of last 
                                                           -- call
        demandNbrClearReason    DisplayString,  -- reason last call completed
        demandNbrClearCode      OCTET STRING,   -- reason last call completed
        demandNbrSuccessCalls   Counter32,  -- number of completed calls to 
                                            -- neighbor
        demandNbrFailCalls      Counter32,  -- number of failed call attempts
        demandNbrAcceptCalls    Counter32, -- number of calls from neighbor 
                                           -- accepted
        demandNbrRefuseCalls    Counter32, -- number of calls from neighbor 
                                           -- refused
        demandNbrLastAttemptTime        TimeStamp,  -- sysUpTime of last 
                                                    -- call attempt
        demandNbrStatus         RowStatus,
        demandNbrCallOrigin     INTEGER
        }
 
demandNbrPhysIf OBJECT-TYPE
        SYNTAX  Integer32 (1..2147483647)
        MAX-ACCESS      not-accessible
        STATUS  current
        DESCRIPTION
        "ifIndex value of the physical interface the neighbor will be
        called on. On an ISDN interface, this is the ifIndex value of
        the D channel."
        ::= { demandNbrEntry 1 }

demandNbrId     OBJECT-TYPE
        SYNTAX  Integer32 (0..2147483647)
        MAX-ACCESS      not-accessible
        STATUS  current
        DESCRIPTION
        "arbitrary sequence number associated with the neighbor."
        ::= { demandNbrEntry 2 }
        
demandNbrLogIf  OBJECT-TYPE
        SYNTAX  Integer32 (1..2147483647)
        MAX-ACCESS      read-create
        STATUS  current
        DESCRIPTION
        "ifIndex value of virtual interface associated with the neighbor.
        This interface maintains a queue of messages holding for the neighbor
        awaiting call completion, and all statistics."
        ::= { demandNbrEntry 3 }
        
demandNbrName   OBJECT-TYPE
        SYNTAX  DisplayString
        MAX-ACCESS      read-create
        STATUS  current
        DESCRIPTION
        "ASCII name of the neighbor."
        ::= { demandNbrEntry 4 }
        
demandNbrAddress        OBJECT-TYPE
        SYNTAX  DisplayString
        MAX-ACCESS      read-create
        STATUS  current
        DESCRIPTION
        "Call Address  at which the neighbor should be called.
        Think of this as the set of characters following 'ATDT '
        or the 'phone number' included in a D channel call request."
        ::= { demandNbrEntry 5 }
        
demandNbrPermission     OBJECT-TYPE
        SYNTAX  INTEGER {       iCanCallHim (1),
                                heCanCallMe (2),
                                weCanCallEachOther (3)
                        }
        MAX-ACCESS      read-create
        STATUS  current
        DESCRIPTION
        "applicable permissions."
        DEFVAL { weCanCallEachOther }
        ::= { demandNbrEntry 6 }
        
demandNbrMaxDuration    OBJECT-TYPE
        SYNTAX  Integer32 (1..2147483647)
        UNITS      "seconds"
        MAX-ACCESS      read-create
        STATUS  current
        DESCRIPTION
        "Maximum call duration in seconds."
        DEFVAL { 2147483647 }
        ::= { demandNbrEntry 7 }
        
demandNbrLastDuration   OBJECT-TYPE
        SYNTAX  Integer32 (1..2147483647)
        UNITS      "seconds"
        MAX-ACCESS      read-only
        STATUS  current
        DESCRIPTION
        "Duration of last call in seconds."
        ::= { demandNbrEntry 8 }
        
demandNbrClearReason    OBJECT-TYPE
        SYNTAX  DisplayString
        MAX-ACCESS      read-only
        STATUS  current
        DESCRIPTION
        "ASCII reason that the last call terminated."
        ::= { demandNbrEntry 9 }
        
demandNbrClearCode      OBJECT-TYPE
        SYNTAX  OCTET STRING
        MAX-ACCESS      read-only
        STATUS  current
        DESCRIPTION
        "encoded reason for the last call tear down."
        ::= { demandNbrEntry 10 }
        
demandNbrSuccessCalls   OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS      read-only
        STATUS  current
        DESCRIPTION
        "number of completed calls to neighbor since system reset."
        ::= { demandNbrEntry 11 }
        
demandNbrFailCalls      OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS      read-only
        STATUS  current
        DESCRIPTION
        "Number of call attempts that have failed."
        ::= { demandNbrEntry 12 }
        
demandNbrAcceptCalls    OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS      read-only
        STATUS  current
        DESCRIPTION
        "Number of calls accepted from the neighbor."
        ::= { demandNbrEntry 13 }
        
demandNbrRefuseCalls    OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS      read-only
        STATUS  current
        DESCRIPTION
        "Number of calls from neighbor that we have refused."
        ::= { demandNbrEntry 14 }
        
demandNbrLastAttemptTime        OBJECT-TYPE
        SYNTAX  TimeStamp
        MAX-ACCESS      read-only
        STATUS  current
        DESCRIPTION
        "sysUpTime of last call attempt."
        ::= { demandNbrEntry 15 }
        
demandNbrStatus OBJECT-TYPE
        SYNTAX  RowStatus
        MAX-ACCESS      read-create
        STATUS  current
        DESCRIPTION
        "Somebody might want to manage the device using SNMP some day..."
        ::= { demandNbrEntry 16 }

demandNbrCallOrigin OBJECT-TYPE
       SYNTAX  INTEGER {
                originate(1),
                answer(2),
                callback(3)
         }
        MAX-ACCESS  read-only   
        STATUS  current
        DESCRIPTION
        "Indication of outgoing or incoming call."
          ::= { demandNbrEntry 17 }
 

-- Traps related to Connection management

ciscoIsdnMibTrapPrefix OBJECT IDENTIFIER ::= { ciscoIsdnMib 2 }
ciscoIsdnMibTraps OBJECT IDENTIFIER ::= { ciscoIsdnMibTrapPrefix 0 }

demandNbrCallInformation NOTIFICATION-TYPE
        OBJECTS {
                demandNbrLogIf,
                demandNbrName,
                demandNbrAddress,
                demandNbrLastDuration,
                demandNbrClearReason,
                demandNbrClearCode
        }
        STATUS  obsolete
        DESCRIPTION
        "This trap/inform is sent to the manager whenever a successful 
        call clears, or a failed call attempt is determined to have 
        ultimately failed. In the event that call retry is active, 
        then this is after all retry attempts have failed. However, 
        only one such trap is sent in between successful call
        attempts; subsequent call attempts result in no trap."
     ::= { ciscoIsdnMibTraps 1 } 

demandNbrCallDetails NOTIFICATION-TYPE
        OBJECTS {
                demandNbrLogIf,
                demandNbrName,
                demandNbrAddress,
                demandNbrLastDuration,
                demandNbrClearReason,
                demandNbrClearCode,
                demandNbrCallOrigin
        }
        STATUS  current
        DESCRIPTION
        "This trap/inform is sent to the manager whenever a call 
        connects, or  clears, or a failed call attempt is determined to 
        have ultimately failed. In the event that call retry is active, 
        then this is after all retry attempts have failed. However, 
        only one such trap is sent in between successful call
        attempts; subsequent call attempts result in no trap.
         
        Whenever a call connects, demandNbrLastDuration, 
        demandNbrClearReason, and demandNbrClearCode objects are not
        included in the trap."
       ::= { ciscoIsdnMibTraps 2 } 

demandNbrLayer2Change NOTIFICATION-TYPE
        OBJECTS {
                ifIndex,
                isdnLapdOperStatus
                }
        STATUS  current
        DESCRIPTION
        "This trap/inform is sent to the manager whenever the
        D-channel of an interface changes state."
       ::= { ciscoIsdnMibTraps 3 }

demandNbrCNANotification NOTIFICATION-TYPE
        OBJECTS {
                isdnSignalingIfIndex,
                ifIndex
                }
        STATUS  current
        DESCRIPTION
        "This trap/inform is sent to the manager whenever the
         an incoming call request is rejected with cause
         'requested circuit/channel not available' (CNA),
         code number 44.

         isdnSignalingIfIndex is the ifIndex value of the interface
         associated with this signaling channel.

         ifIndex is the interface index of the requested bearer channel 
        "
       ::= { ciscoIsdnMibTraps 4 }

-- conformance information

ciscoIsdnMibConformance OBJECT IDENTIFIER ::= { ciscoIsdnMib 3 }
ciscoIsdnMibCompliances OBJECT IDENTIFIER ::= { ciscoIsdnMibConformance 1 }
ciscoIsdnMibGroups      OBJECT IDENTIFIER ::= { ciscoIsdnMibConformance 2 }


-- compliance statements

ciscoIsdnMibCompliance MODULE-COMPLIANCE
      STATUS    current
      DESCRIPTION
                "The compliance statement for entities which implement
                the Cisco ISDN MIB"
      MODULE    -- this module
                MANDATORY-GROUPS { ciscoIsdnMibGroup }
      ::= { ciscoIsdnMibCompliances 1 }

ciscoIsdnMibComplianceRev1 MODULE-COMPLIANCE
      STATUS  current
      DESCRIPTION
               "The compliance statement for entities which implement
               the Cisco ISDN MIB"
      MODULE  -- this module
               MANDATORY-GROUPS { ciscoIsdnMibGroupRev1 }
      ::= { ciscoIsdnMibCompliances 2 }
 

-- units of conformance

ciscoIsdnMibGroup OBJECT-GROUP
      OBJECTS {
        demandNbrLogIf,
        demandNbrName,
        demandNbrAddress,
        demandNbrPermission,
        demandNbrMaxDuration,
        demandNbrLastDuration,
        demandNbrClearReason,
        demandNbrClearCode,
        demandNbrSuccessCalls,
        demandNbrFailCalls,
        demandNbrAcceptCalls,
        demandNbrRefuseCalls,
        demandNbrLastAttemptTime,
        demandNbrStatus
        }
      STATUS    current
      DESCRIPTION
        "A collection of objects providing the ISDN MIB capability."
      ::= { ciscoIsdnMibGroups 1 }
  
ciscoIsdnMibGroupRev1 OBJECT-GROUP
       OBJECTS {
         demandNbrLogIf,
         demandNbrName,
         demandNbrAddress,
         demandNbrPermission,
         demandNbrMaxDuration,
         demandNbrLastDuration,
         demandNbrClearReason,
         demandNbrClearCode,
         demandNbrSuccessCalls,
         demandNbrFailCalls,
         demandNbrAcceptCalls,
         demandNbrRefuseCalls,
         demandNbrLastAttemptTime,
         demandNbrStatus,
         demandNbrCallOrigin
        }
        STATUS  current
        DESCRIPTION
        "A collection of objects providing the call origin capability."
        ::= { ciscoIsdnMibGroups 2 }

END